package com.yunhe.merchants.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunhe.common.annotation.CodeFromTitle;
import com.yunhe.common.annotation.EnumItemCode;
import com.yunhe.common.annotation.OrgName;
import com.yunhe.common.annotation.UserName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 *  策划库
 * @author hetao 2021-05-10
 */
@ApiModel("策划库")
public class DataPlanProject implements Serializable {

    private static final long serialVersionUID = -4391411530663043131L;
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private String id;

    /**
     * 企业名称
     */
    @ApiModelProperty(value = "企业名称")
    private String companyName;

    /**
     * 客户名称
     */
    @ApiModelProperty(value = "客户名称")
    private String custName;

    /**
     * 客户电话
     */
    @ApiModelProperty(value = "客户电话")
    private String custTel;

    /**
     * 企业行业
     */
    @ApiModelProperty(value = "企业行业")
    @CodeFromTitle(code ="industryCategory")
    private String industryType;

    @EnumItemCode(code ="industryCategory")
    @ApiModelProperty(value = "企业行业Title")
    private String industryTypeTitle;

    /**
     * 数据来源
     */
    @ApiModelProperty(value = "数据来源")
    @CodeFromTitle(code ="channelSource")
    private String dataSource;

    @ApiModelProperty(value = "数据来源Title")
    @EnumItemCode(code ="channelSource")
    private String dataSourceTitle;

    /**
     * 当前状态
     */
    @ApiModelProperty(value = "当前状态")
    private String projectStatus;

    @ApiModelProperty(value = "当前状态Title")
    @EnumItemCode(code ="companyStatus")
    private String projectStatusTitle;

    /**
     * 负责人
     */
    @ApiModelProperty(value = "负责人")
    private Long principal;

    @ApiModelProperty(value = "负责人Name")
    @UserName(userId = "principal")
    private String principalName;

    /**
     * 负责部门
     */
    @ApiModelProperty(value = "负责部门")
    private Long responsibleDept;

    @ApiModelProperty(value = "负责部门Name")
    @OrgName(orgId = "responsibleDept")
    private String responsibleDeptName;


    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    private Long entryPerson;


    @ApiModelProperty(value = "录入人Name")
    @UserName(userId = "entryPerson")
    private String entryPersonName;

    /**
     * 录入部门
     */
    @ApiModelProperty(value = "录入部门")
    private Long entryDept;

    @ApiModelProperty(value = "录入部门Name")
    @OrgName(orgId = "entryDept")
    private String entryDeptName;

    /**
     * 是否回敲
     */
    @ApiModelProperty(value = "是否回敲")
    private String knockBackStatus;

    @ApiModelProperty(value = "是否回敲Title")
    @EnumItemCode(code ="whether")
    private String knockBackStatusTitle;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "更新人")
    private Long updater;

    @ApiModelProperty(value = "更新人Title")
    @UserName(userId = "updater")
    private String updaterName;

    public String getIndustryTypeTitle() {
        return industryTypeTitle;
    }

    public void setIndustryTypeTitle(String industryTypeTitle) {
        this.industryTypeTitle = industryTypeTitle;
    }

    public String getDataSourceTitle() {
        return dataSourceTitle;
    }

    public void setDataSourceTitle(String dataSourceTitle) {
        this.dataSourceTitle = dataSourceTitle;
    }

    public String getProjectStatusTitle() {
        return projectStatusTitle;
    }

    public void setProjectStatusTitle(String projectStatusTitle) {
        this.projectStatusTitle = projectStatusTitle;
    }

    public String getPrincipalName() {
        return principalName;
    }

    public void setPrincipalName(String principalName) {
        this.principalName = principalName;
    }

    public String getResponsibleDeptName() {
        return responsibleDeptName;
    }

    public void setResponsibleDeptName(String responsibleDeptName) {
        this.responsibleDeptName = responsibleDeptName;
    }

    public String getEntryPersonName() {
        return entryPersonName;
    }

    public void setEntryPersonName(String entryPersonName) {
        this.entryPersonName = entryPersonName;
    }

    public String getEntryDeptName() {
        return entryDeptName;
    }

    public void setEntryDeptName(String entryDeptName) {
        this.entryDeptName = entryDeptName;
    }

    public String getKnockBackStatusTitle() {
        return knockBackStatusTitle;
    }

    public void setKnockBackStatusTitle(String knockBackStatusTitle) {
        this.knockBackStatusTitle = knockBackStatusTitle;
    }

    public String getUpdaterName() {
        return updaterName;
    }

    public void setUpdaterName(String updaterName) {
        this.updaterName = updaterName;
    }

    public DataPlanProject() {
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCustName() {
        return custName;
    }

    public void setCustName(String custName) {
        this.custName = custName;
    }

    public String getCustTel() {
        return custTel;
    }

    public void setCustTel(String custTel) {
        this.custTel = custTel;
    }

    public String getIndustryType() {
        return industryType;
    }

    public void setIndustryType(String industryType) {
        this.industryType = industryType;
    }

    public String getDataSource() {
        return dataSource;
    }

    public void setDataSource(String dataSource) {
        this.dataSource = dataSource;
    }

    public String getProjectStatus() {
        return projectStatus;
    }

    public void setProjectStatus(String projectStatus) {
        this.projectStatus = projectStatus;
    }

    public Long getPrincipal() {
        return principal;
    }

    public void setPrincipal(Long principal) {
        this.principal = principal;
    }

    public Long getResponsibleDept() {
        return responsibleDept;
    }

    public void setResponsibleDept(Long responsibleDept) {
        this.responsibleDept = responsibleDept;
    }

    public Long getEntryPerson() {
        return entryPerson;
    }

    public void setEntryPerson(Long entryPerson) {
        this.entryPerson = entryPerson;
    }

    public Long getEntryDept() {
        return entryDept;
    }

    public void setEntryDept(Long entryDept) {
        this.entryDept = entryDept;
    }

    public String getKnockBackStatus() {
        return knockBackStatus;
    }

    public void setKnockBackStatus(String knockBackStatus) {
        this.knockBackStatus = knockBackStatus;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Long getUpdater() {
        return updater;
    }

    public void setUpdater(Long updater) {
        this.updater = updater;
    }

}